package com.ruoyi.web.core.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 短剧基础信息对象 dramas
 * 
 * @author ruoyi
 * @date 2025-10-27
 */
public class Dramas extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 短剧唯一标识 */
    @Excel(name = "短剧唯一标识")
    private String dramaId;

    /** 短剧标题 */
    @Excel(name = "短剧标题")
    private String title;

    /** 题材标签 */
    @Excel(name = "题材标签")
    private String tags;

    /** 主要演员 */
    @Excel(name = "主要演员")
    private String mainActors;

    /** 剧情简介 */
    @Excel(name = "剧情简介")
    private String description;

    /** 总集数 */
    @Excel(name = "总集数")
    private String totalEpisodes;

    /** 发布平台 */
    @Excel(name = "发布平台")
    private String platform;

    /** 上线日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "上线日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date releaseDate;

    /** 总播放量 */
    @Excel(name = "总播放量")
    private Long totalPlayCount;

    /** 总点赞数 */
    @Excel(name = "总点赞数")
    private Long totalLikeCount;

    /** 总评论数 */
    @Excel(name = "总评论数")
    private Long totalCommentCount;

    /** 总收藏数 */
    @Excel(name = "总收藏数")
    private Long totalCollectCount;

    /** 完播率 */
    @Excel(name = "完播率")
    private BigDecimal completionRate;

    /** 热度评分 */
    @Excel(name = "热度评分")
    private Long hotScore;

    /** 互动率 */
    @Excel(name = "互动率")
    private BigDecimal interactionRate;

    /** 封面图URL */
    @Excel(name = "封面图URL")
    private String coverImage;

    /** 标题链接 */
    @Excel(name = "标题链接")
    private String titleLink;

    /** 简介关键词 */
    @Excel(name = "简介关键词")
    private String descriptionKeywords;

    /** 数据质量 */
    @Excel(name = "数据质量")
    private String dataQuality;

    /** 是否有详细演员信息 */
    @Excel(name = "是否有详细演员信息")
    private Integer hasDetailedInfo;

    /** 是否有真实播放量 */
    @Excel(name = "是否有真实播放量")
    private Integer hasRealPlayCount;

    /** 精确特征向量 */
    @Excel(name = "精确特征向量")
    private String preciseFeatureVector;

    /** 匹配的标签 */
    @Excel(name = "匹配的标签")
    private String matchedTags;

    /** 匹配标签数量 */
    @Excel(name = "匹配标签数量")
    private Long matchCount;

    /** 数据来源 */
    @Excel(name = "数据来源")
    private String source;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Date createdAt;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Date updatedAt;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setDramaId(String dramaId) 
    {
        this.dramaId = dramaId;
    }

    public String getDramaId() 
    {
        return dramaId;
    }

    public void setTitle(String title) 
    {
        this.title = title;
    }

    public String getTitle() 
    {
        return title;
    }

    public void setTags(String tags) 
    {
        this.tags = tags;
    }

    public String getTags() 
    {
        return tags;
    }

    public void setMainActors(String mainActors) 
    {
        this.mainActors = mainActors;
    }

    public String getMainActors() 
    {
        return mainActors;
    }

    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }

    public void setTotalEpisodes(String totalEpisodes) 
    {
        this.totalEpisodes = totalEpisodes;
    }

    public String getTotalEpisodes() 
    {
        return totalEpisodes;
    }

    public void setPlatform(String platform) 
    {
        this.platform = platform;
    }

    public String getPlatform() 
    {
        return platform;
    }

    public void setReleaseDate(Date releaseDate) 
    {
        this.releaseDate = releaseDate;
    }

    public Date getReleaseDate() 
    {
        return releaseDate;
    }

    public void setTotalPlayCount(Long totalPlayCount) 
    {
        this.totalPlayCount = totalPlayCount;
    }

    public Long getTotalPlayCount() 
    {
        return totalPlayCount;
    }

    public void setTotalLikeCount(Long totalLikeCount) 
    {
        this.totalLikeCount = totalLikeCount;
    }

    public Long getTotalLikeCount() 
    {
        return totalLikeCount;
    }

    public void setTotalCommentCount(Long totalCommentCount) 
    {
        this.totalCommentCount = totalCommentCount;
    }

    public Long getTotalCommentCount() 
    {
        return totalCommentCount;
    }

    public void setTotalCollectCount(Long totalCollectCount) 
    {
        this.totalCollectCount = totalCollectCount;
    }

    public Long getTotalCollectCount() 
    {
        return totalCollectCount;
    }

    public void setCompletionRate(BigDecimal completionRate) 
    {
        this.completionRate = completionRate;
    }

    public BigDecimal getCompletionRate() 
    {
        return completionRate;
    }

    public void setHotScore(Long hotScore) 
    {
        this.hotScore = hotScore;
    }

    public Long getHotScore() 
    {
        return hotScore;
    }

    public void setInteractionRate(BigDecimal interactionRate) 
    {
        this.interactionRate = interactionRate;
    }

    public BigDecimal getInteractionRate() 
    {
        return interactionRate;
    }

    public void setCoverImage(String coverImage) 
    {
        this.coverImage = coverImage;
    }

    public String getCoverImage() 
    {
        return coverImage;
    }

    public void setTitleLink(String titleLink) 
    {
        this.titleLink = titleLink;
    }

    public String getTitleLink() 
    {
        return titleLink;
    }

    public void setDescriptionKeywords(String descriptionKeywords) 
    {
        this.descriptionKeywords = descriptionKeywords;
    }

    public String getDescriptionKeywords() 
    {
        return descriptionKeywords;
    }

    public void setDataQuality(String dataQuality) 
    {
        this.dataQuality = dataQuality;
    }

    public String getDataQuality() 
    {
        return dataQuality;
    }

    public void setHasDetailedInfo(Integer hasDetailedInfo) 
    {
        this.hasDetailedInfo = hasDetailedInfo;
    }

    public Integer getHasDetailedInfo() 
    {
        return hasDetailedInfo;
    }

    public void setHasRealPlayCount(Integer hasRealPlayCount) 
    {
        this.hasRealPlayCount = hasRealPlayCount;
    }

    public Integer getHasRealPlayCount() 
    {
        return hasRealPlayCount;
    }

    public void setPreciseFeatureVector(String preciseFeatureVector) 
    {
        this.preciseFeatureVector = preciseFeatureVector;
    }

    public String getPreciseFeatureVector() 
    {
        return preciseFeatureVector;
    }

    public void setMatchedTags(String matchedTags) 
    {
        this.matchedTags = matchedTags;
    }

    public String getMatchedTags() 
    {
        return matchedTags;
    }

    public void setMatchCount(Long matchCount) 
    {
        this.matchCount = matchCount;
    }

    public Long getMatchCount() 
    {
        return matchCount;
    }

    public void setSource(String source) 
    {
        this.source = source;
    }

    public String getSource() 
    {
        return source;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("dramaId", getDramaId())
            .append("title", getTitle())
            .append("tags", getTags())
            .append("mainActors", getMainActors())
            .append("description", getDescription())
            .append("totalEpisodes", getTotalEpisodes())
            .append("platform", getPlatform())
            .append("releaseDate", getReleaseDate())
            .append("totalPlayCount", getTotalPlayCount())
            .append("totalLikeCount", getTotalLikeCount())
            .append("totalCommentCount", getTotalCommentCount())
            .append("totalCollectCount", getTotalCollectCount())
            .append("completionRate", getCompletionRate())
            .append("hotScore", getHotScore())
            .append("interactionRate", getInteractionRate())
            .append("coverImage", getCoverImage())
            .append("titleLink", getTitleLink())
            .append("descriptionKeywords", getDescriptionKeywords())
            .append("dataQuality", getDataQuality())
            .append("hasDetailedInfo", getHasDetailedInfo())
            .append("hasRealPlayCount", getHasRealPlayCount())
            .append("preciseFeatureVector", getPreciseFeatureVector())
            .append("matchedTags", getMatchedTags())
            .append("matchCount", getMatchCount())
            .append("source", getSource())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .toString();
    }
}
